package edu.ues21.tcs.ecommerce2011.mvc.dao;

import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.transaction.annotation.Transactional;
import edu.ues21.tcs.ecommerce2011.mvc.model.Administrador;

/**
*
* @author eandre fmantaras
*/
@Transactional
public class AdministradorDAOImpl implements AdministradorDAO {

		// Declaro el hibernate template.iberna
		private HibernateTemplate hibernateTemplate;

		// Le seteo el sessionFactory que le inyecto al hibernateTemplate.
		public void setSessionFactory(SessionFactory sessionFactory) {
			this.hibernateTemplate = new HibernateTemplate(sessionFactory);
			// this.sessionFactory = sessionFactory;
			// this.hibernateTemplate.setSessionFactory(sessionFactory);
		}

		public void save(Administrador administrador) {
			hibernateTemplate.merge(administrador);
		}

		public void delete(String nombreUsuario) {

			Administrador administrador = (Administrador) hibernateTemplate.get(Administrador.class,
					nombreUsuario);
			// Elimino.
			hibernateTemplate.delete(administrador);

		}

		@SuppressWarnings("unchecked")
		@Transactional(readOnly = true)
		public List<Administrador> getAll() {

			return hibernateTemplate.find("from Administrador");
		}
		
		@Transactional(readOnly = true)
		public Administrador getAdministrador(String nombreUsuario) {

			return hibernateTemplate.get(Administrador.class, nombreUsuario);
		}

}